大家好,這篇要來和大家聊聊密碼學是什麼
這篇主要是講解密碼學的發展史,還有釐清一些專有名詞的意思,所以可以輕鬆一點,當成是在看故事就好
:密碼學這個詞看起來好像很厲害,它是在教你怎麼設安全的密碼嗎?
完全不是!大錯特錯
著名的密碼學家羅納德·李維斯特(Ronald Linn Rivest)
曾經對密碼學的意思進行解釋:「密碼學是關於如何在敵人存在的環境中通訊」
所以密碼學指的是:「在傳遞資料時,透過加密、解密,來達成機密性的過程」
而密碼學可分成「古典密碼學」和「現代密碼學」,就和音樂被分成「古典音樂」和「現代音樂」是一樣的,都是透過歷史的演變去區分
那在開始講密碼學的歷史前,我想先和大家釐清以下幾個名詞:
1. 密碼
它目前是一種被廣泛使用,但定義不明確的用詞
舉個例子,密碼學(Cryptography) 的「密碼」兩個字,其實不是指 password 的那個密碼,而是指希臘語的 kryptós「隱藏的」
、gráphein「書寫」
再舉一個例子,密碼機(Cipher Machine) 的「密碼」其實指的是「加(解)密
」的意思,而登入帳密(Account Password) 的「密」指的是「通行碼
」
是不是覺得有夠複雜?其實只要用英文看,就不容易被混淆了
被混淆時可以上雙語辭典查,會比較好理解
2. 明文(plain text)/ 密文(cipher text)明文(plain text)
:指一眼就能看懂,沒有經過加密的文字密文(cipher text)
:指無法立刻看懂的文字,是明文經過加密處理,所得到的結果,如果想理解其內容,就要先將密文解密回明文
3. 加密(encryption)/ 解密(decryption)加密(encryption)
:指在資料傳輸的過程中,使用特殊編碼技術,將明文的資料轉換成無法一眼看懂的密文解密(decryption)
:指使用和加密相同的編碼技術,將無法一眼看懂的密文,轉換成一眼就能看懂的明文
4. 金鑰(key)
無論是在加密,還是解密,都需要使用金鑰,它的長度和安全性的強度成正比,當它的長度越長時,加解密會越耗時,但是越不容易被破解
既然介紹完名詞,那就開始講密碼學的故事啦
這裡我們先從歷史最悠久的「古典密碼學」開始講起
早期密碼學是被使用在戰爭上,為了避免在書信往來時被敵人攔截,進而看到裡面的作戰機密,因此會將書信內容進行加密
凱薩加密法(Caesar cipher)
就是因為這個原因,被凱薩大帝
發明出來的
它的原理是使用字母的位移,依序向右位移3格,進而達到加密的效果
(圖片來源:https://xxxxtim.github.io/2020/01/30/caesar%20cipher/#%E5%8E%9F%E7%90%86)
舉個例子,假設今天有個明文是abcd
,那它經過加密取得的密文就是defg
相反的,將密文defg
進行解密,就會得到明文abcd
摩斯密碼(Morse code)
也是一種編碼,透過對照摩斯編碼表去進行加密,如果想要解密,就在摩斯編碼表找到對應的英文單字即可
而在第二次世界大戰時,德軍發明了一個加解密器,叫Enigma密碼機
,其目的是為了加密傳給友軍的電報內容,不讓敵軍知道他們的作戰機密為何
這裡會略提一下 Enigma 的加密方式
假設要進行加密,就要先從密碼簿裡選擇一個「每日金鑰」,並設定在轉盤上
Enigma 的轉盤只有三個,所以每日金鑰會由三個英文字母所組成(通訊金鑰也是)
既然已經在 Enigma 設定好每日金鑰,那就要決定一組通訊金鑰進行加密,假設是PSV
那就要將PSV在鍵盤上輸入兩次(即PSVPSV),並對其進行加密,而加密後的六位數通訊金鑰為ATCDVT
取得「加密過的六位數通訊金鑰(即ATCDVT)
」後,重新設定Enigma的金鑰,這次使用的不是每日金鑰,而是使用「通訊金鑰PSV」,再對其明文進行加密
再把「加密後的六位數通訊金鑰(即ATCDVT)
」和「加密後取得的密文
」進行結合,傳送給友軍
所以 Enigma 的「加密」流程為:
而 Enigma 的「解密」就是把「加密」流程的順序作「顛倒」而已:
因為 Enigma 密碼機的出現,突顯了秘密通訊的重要性
而各國為了破解 Enigma,催生了現代電腦的出現,讓古典密碼學進入到現代密碼學
最終,Enigma 被英國知名學者艾倫·麥席森·圖靈(Alan Mathison Turing)
破解,他發明了「炸彈(Bombe)」解密機,透過這台機器不斷的嘗試可能的金鑰組合,再經過不斷地改良,使得 Bombe 的計算能力大幅提升,到戰爭後期 Bombe 僅需花 20 分鐘就可以完成計算,成功破解德軍的每日金鑰,並得知德軍的加密訊息
那為什麼會說現代「電腦」的出現,造就了「現代密碼學」的出現呢?
因為在古典密碼學的階段裡,都是使用「手動」的方式進行資料的加解密、傳遞
而現代電腦的出現,使得加解密不再局限於書寫的文字,讓「手動」執行慢慢轉成「電腦」執行,但也因為電腦的快速進步,使得之前的加密法都能被現在的電腦快速破解出來
因此現代密碼學除了繼承古典密碼學的概念,也開始注重資料保密、資料完整性驗證
等,所以出現了對稱/非對稱式加密、數位憑證、簽章…等概念
,這邊只需要先知道就好,後續幾天會一一向各位介紹
以上就是今天的介紹,希望大家看完能對密碼學的發展史更加了解